Some types of data communication systems use the concept of primary and secondary nodes or logical units (LUs) to control data communications on sessions between the nodes. The System Network Architecture (SNA), for example, provides for such a relationship with respect to LUs, as described in the publication "Systems Network Architecture--Technical Overview"; Publication GC30-3073; 1986; International Business Machines Corporation. In the SNA environment, a primary LU is responsible for initiating the establishment of sessions to a secondary LU via one or more routes. A route between primary and secondary nodes may encompass intermediate nodes and a route may contain many sessions. A session is a logical communication connection between logical units (LUs). A LU as defined in SNA is a network addressable logical entity through which a user or application can gain access via a network to another LU on a different node for services.
The prior art, as described in the above-mentioned publication GC30-3073, includes the ability to provide a backup session for an active session between primary and secondary LUs. This ability is called Extended Recovery Facility (XRF). The backup session remains idle while the active session is operational. If failure of the active session is detected, the backup session is automatically substituted for the active session by a SWITCH message sent from the primary LU to the secondary LU?, thus allowing uninterrupted operation between the primary and secondary LUs. This prior art, implemented by software, is analogous to other known art that provides backup communications channels for active channels. For example, it is known to automatically substitute by means of hardware a backup channel for an active channel upon detection of a channel failure.
In the SNA architecture, it is also known to switch sessions to alternate routes upon detection of a route failure. U.S. patent application Ser. No. 301,193, NON-DISRUPTIVE SESSION RECOVERY, filed by Aston et al, discloses such a method using messages analogous to switch commands.
When a primary node wishes to terminate a session, it transmits a message to that effect to the secondary node and the secondary node responds with appropriate action, such as deallocating buffers assigned to the session and updating its internal memory. However, during abnormal conditions, it is possible for a primary node to terminate a session and for notification of the termination to fail to reach the secondary node. One such situation can occur when a termination message from the primary fails to get through to the secondary because of a route failure. The result can be that the primary node believes that both nodes are aware of the termination, whereas the secondary believes that the session is still active. No doubt there are other abnormal situations in which similar out-of-step conditions between primary and secondary nodes can occur. In such cases, the secondary node unnecessarily retains resources, such as buffers, for the session until a timeout occurs either on session communication or failure to receive a session switch message after the secondary node becomes aware of a route failure. Despite careful attention to avoid such situations in which the primary and secondary nodes can get out-of-step, it is never possible to guarantee it.
When a primary node wishes to reassign existing sessions to alternate routes, such as it might do in the case of a route failure, it generates switch messages which are sent to the secondary via the alternate route(s) to be used for the sessions. A switch message informs the secondary that the primary node is reassigning one or more existing sessions to a route different from that on which the session is presently assigned. In the problem areas addressed by the invention, the primary node never sends any switch message(s) for whatever reason, thus causing the secondary to maintain unnecessarily the session resources until a timeout occurs for the session(s) in question.